home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
gnu
/
include
/
incl98.zoo
/
setjmp.h
< prev
next >
Wrap
C/C++ Source or Header
|
1993-11-05
|
1KB
|
60 lines
#ifndef _SETJMP_H
#define _SETJMP_H
#ifndef _COMPILER_H
#include <compiler.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __TURBOC__
# ifdef __68881__
typedef char jmp_buf[12 * 4 + 5 * 12];
# else
typedef char *jmp_buf[12];
# endif
#else /* __TURBOC__ */
typedef long jmp_buf[14]; /* retaddr, 12 regs, sigmask */
#endif /* __TURBOC__ */
#ifndef __STRICT_ANSI__
typedef jmp_buf sigjmp_buf;
__EXTERN int sigsetjmp __PROTO((sigjmp_buf env, int savemask));
__EXTERN int siglongjmp __PROTO((sigjmp_buf env, int val));
#ifdef _BSD_SOURCE
/* BUG: we lose if _BSD_SOURCE && __STRICT_ANSI__ */
#define _setjmp(__jb) (sigsetjmp(__jb, 0))
#define _longjmp(__jb,__v) (siglongjmp(__jb, __v))
#define setjmp(__jb) (sigsetjmp(__jb, 1))
#define longjmp(__jb,__v) (siglongjmp(__jb, __v))
#endif /* _BSD_SOURCE */
#endif /* __STRICT_ANSI__ */
#ifndef _BSD_SOURCE
__EXTERN int setjmp __PROTO((jmp_buf));
__EXTERN void longjmp __PROTO((jmp_buf, int));
#endif /* not _BSD_SOURCE */
#ifndef __MINT__
# ifndef __cplusplus
__EXTERN int catch __PROTO((jmp_buf id, int (*fn )(void )));
__EXTERN void throw __PROTO((jmp_buf id, int rv));
# endif
#endif
#ifdef __cplusplus
}
#endif
#endif /* _SETJMP_H */